package businessLogic.service;

import dao.TareaDAO;
import entity.Tarea;
import java.util.List;
import javax.persistence.EntityManager;
import vo.IValueObject;
import vo.TareaVO;

/**
 *
 * @author Alexander
 */
public class TareaService implements IService{

    @Override
    public void persist(IValueObject vo, EntityManager em) {
        Tarea entity = new Tarea();
        entity.setId(((TareaVO)vo).getId());
        entity.setNombre(((TareaVO)vo).getNombre());
        entity.setDescripcion(((TareaVO)vo).getDescripcion());
        entity.setNivelDeImportancia(((TareaVO)vo).getNivelDeImportancia());
        entity.setNivelDeUrgencia(((TareaVO)vo).getNivelDeUrgencia());
        entity.setEstaTerminada(((TareaVO)vo).isEstaTerminada());
        entity.setFechaAlarma(((TareaVO)vo).getFechaAlarma());
        
        //entity.setCalendario();
        
        new TareaDAO().persist(entity, em);
    }

    @Override
    public IValueObject find(Object id, EntityManager em) {
        return new TareaDAO().find(id, em);
    }

    @Override
    public void update(IValueObject vo, EntityManager em) {
        Tarea entity = new Tarea();
        entity.setId(((TareaVO)vo).getId());
        entity.setNombre(((TareaVO)vo).getNombre());
        entity.setDescripcion(((TareaVO)vo).getDescripcion());
        entity.setNivelDeImportancia(((TareaVO)vo).getNivelDeImportancia());
        entity.setNivelDeUrgencia(((TareaVO)vo).getNivelDeUrgencia());
        entity.setEstaTerminada(((TareaVO)vo).isEstaTerminada());
        entity.setFechaAlarma(((TareaVO)vo).getFechaAlarma());
        
        //entity.setCalendario();
        
        new TareaDAO().update(entity, em);
    }

    @Override
    public void delete(Object id, EntityManager em) {
        new TareaDAO().delete(id, em);
    }

    @Override
    public List<IValueObject> getList(EntityManager em) {
        return new TareaDAO().getList(em);
    }
    
}
